package day02;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class HomeWorkDay02 {
    public static void main(String[] args) {

        /*
        int a=5;
        long b=a;//自动/隐式类型转换
        int c =(int)b;//强制类型转换

        long d=5;//自动类型转换
        double e=5;//自动类型转换
        System.out.println(e);//输出为5.0

        long f=10000000000L;
        int g=(int)f;
        System.out.println(g);//输出为1410065480，因为是强制转换，所以结果可能会溢出

        double h=25.3131;
        int i=(int)h;
        System.out.println(i);//输出结果为25，强制转换类型，导致丢失精度
        //short/byte/char类型在参与计算时，会先转为int类型，再开始计算
        byte b1=5;
        byte b2=6;
        byte b3=(byte)(b1+b2);//因为java开发时，转换类型优先级高于计算，所以得都加括号

        System.out.println(2+2);//输出4
        System.out.println(2+'2');//输出52,2加上'2'的码50
        System.out.println('2'+'2');//输出100，'2'的码50加上'2'的码50
        System.out.println('2');//输出2，因为没有参与运算，所以直接输出2
        */

        /*
        char c1='女';
        char c2='f';
        char c3='6';
        char c4=' ';
        //char c5=女;//编译错误，字符需要使用''
        //char c6='';//编译错误，''中必须有字符
        //char c7='10';//编译错误，只可以装一个字符，10为两个

        char c8=65;//0-65535之间
        System.out.println(c8);//println()会根据c8的类型来进行显示
        //若c8为int类型，则输出数字
        //若c8为char类型，则输出65所代表的字符

        char c9='\'';//特殊字符需要用\来转译
        */

        /*
        double b=2.3333;
        float c=2.3333F;//如果不加F或f，则默认为double类型
        double a=3.0, d=2.9;
        System.out.println(a-d);//本应该输出0.1
        //但是实际输出1.100000000009  发生舍入误差
        //所以double不能用于精确场合
        */

        /*
        long a =25L;//25L为长整型
        //long b=1000000000000000;//编译错误，100亿默认为int类型，但是超过int类型范围
        long d=365L*24*60*60*1000;
        System.out.println(d);//输出31536000000
        long e =1000000000*3*10l;
        System.out.println(e);
        //输出结果不为300亿，因为先计算的是10亿乘以3，而10亿乘以3为int类型
        long f =1000000000L*3*10;
        System.out.println(f);
        //输出结果为300亿，因为先计算的10亿为long类型，所以计算结果也为long类型
        */

        /*
        int a=250;//为整数直接量，默认int类型
        //int a=100000000000;//编译错误，100亿默认为int类型，但超过int类型最大范围
        //int c=25.131;//编译错误，整型变量中只能装整数

        System.out.println(5/2);//2
        System.out.println(2/5);//0   //因为默认为int类型只，int类型可以装整数
        System.out.println(5.0/2);//2.5
        System.out.println(5/2.0);//2.5  //因为输入了点零，所以默认为double类型
         */

    }

}
